﻿using System;
using System.Collections.Generic;
namespace iLangl.Model
{
	public interface IProject : IDuplex
	{
		string LicenseKey { get; set; }
		string Name { get; set; }
		DateTime Deadline { get; set; }
		string Description { get; set; }
		string Status { get; set; }

		StateHistory[] History { get; set; }

		Contact TechnicalContact { get; set; }
		ContentEntity[] Contents { get; set; }
		Translation[] Translations { get; set; }
		WorkArea WorkArea { get; set; }
		Contact Owner { get; set; }
		Product Product { get; set; }

		void AddContent(global::iLangl.Model.ContentEntity content);
		void AddTranslation(global::iLangl.Model.Translation translation);
		void SetProjectLanguages(IList<Language> languages);
		IList<Language> GetProjectLanguages(bool refresh);
		IList<Translation> GetTranslationsByLanguagePair(LanguagePair lpr);
		IList<LanguagePair> GetProjectLanguagePairs();
		ContentEntity FindContent(string contentId);
		Language FindLanguage(string languageId);
	}
}
